In its most basic form, a bit block transfer (often referred to as a "bitBlt", "pixel Blt" or simply a "Blt") transfers a block of data from one portion of a graphics display memory to another. A series of source addresses are generated along with a corresponding series of destination addresses. Source data are read from the source addresses, and then written to the destination addresses. In addition to simply transferring data, a Blt operation may also perform a logical operation on the source data and other operand(s) (often referred to as a raster operation, or rop). Rops and Blts are discussed in Computer Graphics Principles and Practice, Second Edition, by Foley, VanDam, Feiner and Hughes, Addison-Wesley Publishing Company, Inc., 1993, pp. 56-60. Blts are commonly used in creating or manipulating images in computer display systems.
While Blts can be performed by a host processor by way of Blt software, many computer systems include specialized hardware (such as a graphics processor) for performing such functions, along with other graphics operations. The particular hardware that undertakes Blt and related operations is commonly referred to as a Blt engine. To use a typical Blt engine, the Blt operation is first set-up by loading a number of registers with parameter information for the Blt, such as the source and destination locations, and the type of rop. The Blt engine is then activated by a write start command. Blt engines typically include a Blt address generator for generating display memory addresses. Accordingly, in graphics applications, a Blt operation between source and destination locations that are both within the display memory ("screen-to-screen" Blt) requires no other host action once the Blt is initiated, and host-to-screen Blts require only that the host supply or receive the block data.
The implementation of a rop in conjunction with a Blt operation is typically performed by coupling source and/or destination data to one or more logic circuits which perform a logical operation according to a rop command previously loaded in the set up registers. There are numerous possible types of rops. See Richard F. Ferraro, Programmer's Guide to the EGA, VGA and Super VGA Cards, Third Edition, Addison-Wesley Publishing Company, Inc., 1994, pp. 707-712. In addition to standard logic rops, arithmetic addition or subtraction has been implemented in the Blt data path in U.S. Pat. No. 4,933,878 issued to Guttag et al. on Jun. 12, 1990.
From the above general description and cited prior art it is shown that basic Blt operations (with a rop) include four general steps: reading source data from the source location to a temporary data store, optionally reading destination or other operand data from its location, performing the rop on the data, and writing the result to the destination location.
While conventional Blt engine approaches provide considerable acceleration of two dimensional display rendering tasks, computer applications can benefit from more sophisticated functions on graphics data.